/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package wasolicitudesfiec.consultas;

import entidad.Especializacion;
import java.sql.*;
import java.util.Vector;

/**
 *
 * @author kabad
 */
public class ConsultasEspecializacion {

    private Connection con;

    public Vector<Especializacion> leerVariosEspecializacion() throws SQLException {
        Vector<Especializacion> datos = new Vector<Especializacion>();
        Especializacion reg;

        PreparedStatement proc = con.prepareStatement(
                "call leerVariosEspecializacion() ");
        ResultSet rs = proc.executeQuery();
        while (rs.next()) {
            reg = new Especializacion();
            reg.setFkIdCarrera(rs.getInt(1));
            reg.setIdEspecializacion(rs.getInt(2));
            reg.setNombre(rs.getString(3));
            datos.add(reg);
        }//end while
        return datos;


    }

    public Vector<Especializacion> leerVariosEspecializacionesPorCarrera(int idCarrera) throws SQLException {
        Vector<Especializacion> datos = new Vector<Especializacion>();
        Especializacion reg;
        PreparedStatement proc = con.prepareStatement(
                "call leerEspecializacionesPorCarrera(?) ");
        proc.setInt(1, idCarrera);
        ResultSet rs = proc.executeQuery();
        while (rs.next()) {
            reg = new Especializacion();
            reg.setFkIdCarrera(rs.getInt(1));
            reg.setIdEspecializacion(rs.getInt(2));
            reg.setNombre(rs.getString(3));
            datos.add(reg);
        }//end while
        return datos;
    }

    public void setConexion(Connection con) {
        this.con = con;
    }

    public Vector<Especializacion> HLleerVariosEspecializacion(Especializacion val) throws SQLException {
        return leerVariosEspecializacion();
    }

    public boolean modificarEspecializacion(int fkIdCarrera, int idEspecializacion, String nombre) throws SQLException {
        boolean exitoOperacion = true;

        PreparedStatement proc = con.prepareStatement(
                "call modificarEspecializacion(?,?,?) ");
        proc.setInt(1, fkIdCarrera);
        proc.setInt(2, idEspecializacion);
        proc.setString(3, nombre);
        proc.execute();
        return exitoOperacion;


    }

    public boolean HLmodificarEspecializacion(Especializacion val) throws SQLException {
        return modificarEspecializacion(val.getFkIdCarrera(), val.getIdEspecializacion(), val.getNombre());
    }

    public boolean eliminarEspecializacion(int idEspecializacion) throws SQLException {
        boolean exitoOperacion = true;

        PreparedStatement proc = con.prepareStatement(
                "call eliminarEspecializacion(?) ");
        proc.setInt(1, idEspecializacion);
        proc.execute();
        return exitoOperacion;


    }

    public boolean HLeliminarEspecializacion(Especializacion val) throws SQLException {
        return eliminarEspecializacion(val.getIdEspecializacion());
    }

    public Especializacion nuevoEspecializacion(int fkIdCarrera, String nombre) throws SQLException {
        Especializacion reg = new Especializacion();

        PreparedStatement proc = con.prepareStatement(
                "call nuevoEspecializacion(?,?) ");
        proc.setInt(1, fkIdCarrera);
        proc.setString(2, nombre);
        ResultSet rs = proc.executeQuery();
        if (rs.next()) {
            reg.setFkIdCarrera(rs.getInt(1));
            reg.setIdEspecializacion(rs.getInt(2));
            reg.setNombre(rs.getString(3));
        } else {
            reg = null;
        }
        return reg;


    }

    public Especializacion HLnuevoEspecializacion(Especializacion val) throws SQLException {
        return nuevoEspecializacion(val.getFkIdCarrera(), val.getNombre());
    }

    public Especializacion leerEspecializacion(int idEspecializacion) throws SQLException {
        Especializacion reg = new Especializacion();

        PreparedStatement proc = con.prepareStatement(
                "call leerEspecializacion(?) ");
        proc.setInt(1, idEspecializacion);
        ResultSet rs = proc.executeQuery();
        if (rs.next()) {
            reg.setFkIdCarrera(rs.getInt(1));
            reg.setIdEspecializacion(rs.getInt(2));
            reg.setNombre(rs.getString(3));
        } else {
            reg = null;
        }
        return reg;


    }

    public Especializacion HLleerEspecializacion(Especializacion val) throws SQLException {
        return leerEspecializacion(val.getIdEspecializacion());
    }
}// FIN CLASE: ConsultasEspecializacion

